home *** CD-ROM | disk | FTP | other *** search
Wrap
mmmmllllddddsssseeeetttt((((3333)))) mmmmllllddddsssseeeetttt((((3333)))) NNNNAAAAMMMMEEEE mldset_create, mldset_destroy, mldset_place - mldset operations SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ttttyyyyppppeeeessss....hhhh>>>> ####iiiinnnncccclllluuuuddddeeee <<<<ssssyyyyssss////ppppmmmmoooo....hhhh>>>> ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt mmmmllllddddsssseeeetttt____ccccrrrreeeeaaaatttteeee((((ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt**** mmmmllllddddlllliiiisssstttt,,,, iiiinnnntttt mmmmllllddddlllliiiisssstttt____lllleeeennnn)))) iiiinnnntttt mmmmllllddddsssseeeetttt____ddddeeeessssttttrrrrooooyyyy((((ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt mmmmllllddddsssseeeetttt____hhhhaaaannnnddddlllleeee)))) iiiinnnntttt mmmmllllddddsssseeeetttt____ppppllllaaaacccceeee((((ppppmmmmoooo____hhhhaaaannnnddddlllleeee____tttt mmmmllllddddsssseeeetttt____hhhhaaaannnnddddlllleeee,,,, ttttooooppppoooollllooooggggyyyy____ttttyyyyppppeeee____tttt ttttooooppppoooollllooooggggyyyy____ttttyyyyppppeeee,,,, rrrraaaaffffffff____iiiinnnnffffoooo____tttt**** rrrraaaafffffffflllliiiisssstttt,,,, iiiinnnntttt rrrraaaafffffffflllliiiisssstttt____lllleeeennnn,,,, rrrrqqqqmmmmooooddddeeee____tttt rrrrqqqqmmmmooooddddeeee)))) DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN _mmmm_llll_dddd_ssss_eeee_tttt______cccc_rrrr_eeee_aaaa_tttt_eeee creates a memory locality domain set. _mmmm_llll_dddd_ssss_eeee_tttt______dddd_eeee_ssss_tttt_rrrr_oooo_yyyy destroys a memory locality domain set. _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee places a memory locality domain set. The placement is done using the supplied MLDset topology and optional affinity. The topology_type can be one of the following: TOPOLOGY_FREE This topology specification lets the Operating System decide what shape to use to allocate the set. The Operating System will try to place this MLDset on a cluster of physical nodes as compact as possible, depending on the current system load. TOPOLOGY_CPUCLUSTER This topology specification is used to request the placement of one MLD per CPU instead of the default one MLD per node. In an Origin 3000, the number of cpus on a fully populated node is 4, hence each node can have up to 4 MLDs placed per node. For a node with less than the maximum number of cpus available the number of MLDs placed on that node will not exceed the actual number of CPUs. Also if cpusets are in use, the MLDs will be placed on nodes that are part of the defined cpuset. This topology is useful when the placement policy is managing cache coloring relative to MLDs instead of virtual memory regions. TOPOLOGY_CUBE This topology specification is used to request a cube-like shape. PPPPaaaaggggeeee 1111 mmmmllllddddsssseeeetttt((((3333)))) mmmmllllddddsssseeeetttt((((3333)))) TOPOLOGY_CUBE_FIXED This topology specification is used to request a physical cube. TOPOLOGY_PHYSNODES This topology specification is used to request that the MLDs in an MLDset be placed in the exact physical nodes enumerated in the device affinity list, described below. The argument rafflist is used to specify resource affinity. It is an array of resource specifications using the structure shown below: typedef struct raff_info { void* resource; ushort reslen; ushort restype; ushort radius; ushort attr; } raff_info_t; The fields resource, reslen, and restype define the resource. The field resource is used to specify the name of the resource, the field reslen must always be set to the actual number of bytes the resource pointer points to, and the field restype specifies the kind of resource identification being used, which can be any of the following: RAFFIDT_NAME This resource identification type should be used for the cases where a hardware graph path name is used to identify the device. RAFFIDT_FD This resource identification type should be used for the cases where a file descriptor is being used to identify the device. The radius field defines the maximum distance from the actual resource the user would like the MLDset to be place at. The attr field specified whether the user wants the MLDset to be placed close or far from the resource: RAFFATTR_ATTRACTION The MLDset should be placed as close as possible to the specified device. RAFFATTR_REPULSION The MLDset should be placed as far as possible from the specified device. The argument rafflist_len in the _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee call specifies the number of raff structures the user is passing via rafflist. There must be at least as many raff structures passed as the size of the corresponding mldset or the operation will fail and EINVAL will be returned. PPPPaaaaggggeeee 2222 mmmmllllddddsssseeeetttt((((3333)))) mmmmllllddddsssseeeetttt((((3333)))) Finally, the rqmode argument is used to specify whether the placement request is ADVISORY or MANDATORY. For both rqmode types, the nodes selected for MLD assignment are chosen according to several criteria of cpuset selection, load activity, neighbor node distance, and available memory. This group of nodes is the candidate list. The final criteria of available node memory can suddenly spike after a node has been included in the candidate list due to other unrelated activity. In the rqmode of ADVISORY, an MLD assignment to a node with no available memory or no available forecasted memory causes the MLD assignment to one of the other nodes previously selected from the candidate list. This may occasionally result in MLD placement that may be less than optimal under heavy memory use conditions. The rqmode of MANDATORY performs similar selection criteria as ADVISORY, except for the final check of available memory or forecasted memory. If there is not enough available memory or forecasted memory on a node, the placement operation will fail and ENOMEM will be returned. _mmmm_llll_dddd_ssss_eeee_tttt______cccc_rrrr_eeee_aaaa_tttt_eeee will fail and no MLD set will not be created if one or more of the following are true: _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT Arguments could not be copied into kernel space. _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT The MLD list is NULL. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The MLD list length is less than 1. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL An MLD in the MLD list does not exist or is invalid. _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM No memory is available to create the MLD set. _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP Memory locality domains are not supported on this system architecture. _mmmm_llll_dddd_ssss_eeee_tttt______dddd_eeee_ssss_tttt_rrrr_oooo_yyyy will fail and no MLD set will not be created if one or more of the following are true: _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The specified _mmmm_llll_dddd_ssss_eeee_tttt______hhhh_aaaa_nnnn_dddd_llll_eeee is invalid or does not exist. _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP Memory locality domains are not supported on this system architecture. _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee will fail and the MLD set will not be placed if one or more of the following are true: _EEEE_FFFF_AAAA_UUUU_LLLL_TTTT Arguments could not be copied into kernel space. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The specified _mmmm_llll_dddd_ssss_eeee_tttt______hhhh_aaaa_nnnn_dddd_llll_eeee is invalid or does not exist. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The specified topology is invalid. PPPPaaaaggggeeee 3333 mmmmllllddddsssseeeetttt((((3333)))) mmmmllllddddsssseeeetttt((((3333)))) _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The specified rafflist length is non-zero, but the rafflist pointer is NULL. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The rafflist pointer is non-NULL, but the specified rafflist length is zero. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The member of the rafflist is NULL. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The rafflist length exceeds the system allowable length. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL Mandatory rafflist placement could not be satisfied. _EEEE_IIII_NNNN_VVVV_AAAA_LLLL The specified rqmode has invalid hint bits set. _EEEE_NNNN_OOOO_MMMM_EEEE_MMMM No memory is available to place the MLD set. _EEEE_NNNN_OOOO_TTTT_SSSS_UUUU_PPPP Memory locality domains are not supported on this system architecture. SSSSEEEEEEEE AAAALLLLSSSSOOOO numa(5), mmci(5), mld(3c), pm(3c), migration(3c). DDDDIIIIAAAAGGGGNNNNOOOOSSSSTTTTIIIICCCCSSSS Upon successful completion, _mmmm_llll_dddd_ssss_eeee_tttt______cccc_rrrr_eeee_aaaa_tttt_eeee returns a value of type pmo_handle_t, _mmmm_llll_dddd_ssss_eeee_tttt______dddd_eeee_ssss_tttt_rrrr_oooo_yyyy and _mmmm_llll_dddd_ssss_eeee_tttt______pppp_llll_aaaa_cccc_eeee return 0. Otherwise, a value of -1 is returned and _e_r_r_n_o is set to indicate the error. PPPPaaaaggggeeee 4444